事例:XSS by file (Active Storage Proxying)
Ruby on RailsのActiveStorageで、ファイル経由でのStored XSS
ファイルアップロード機能
問題
Active StorageのProxy
S3などにアップロードされたファイルをRailsアプリケーション側でproxyして閲覧できる機能
アップロードできるファイルのcontent-typeに制限がないこと、ファイル閲覧時のレスポンスのContent-DispositionがinlineであったためXSSが可能になった
リリース前のmasterブランチで修正された
そのためCVEは発行されていない
当時はSVGファイルにCSPが設定されなかったためCSP bypassとなった
後に事例:CVE-2022-22577 Content Security Policy is only active for HTML responses but not for image/svg+xmlで修正された
レポート
https://hackerone.com/reports/949513
2020年8月
修正コミット
https://github.com/rails/rails/commit/b221a4dc43368a1b6f00476f7c5f6047c5c7eea4
#事例